/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.fjs.liyq.service;

import edu.fjs.liyq.entity.Product;
import java.util.List;

/**
 *
 * @author danny
 */
public interface ProductService {
    /**
     * 
     * @param pageNum
     * @param rowCount
     * @return 
     */
    List<Product> getProductListWithPage(int pageNum, int rowCount);
    
    /**
     * 获取总的商品条数
     * 
     * @return 
     */
    int getProductCount();
    
    /**
     * 添加商品
     * @param product
     * @return 
     */
    boolean addProduct(Product product);
    
    /**
     * 
     * @param prodId
     * @return 
     */
    Product getById(long prodId);
    
    /**
     * 检查商品库存
     * 
     * @param productId     商品ID
     * @param num   需要的商品数量
     * @return      如果库存数量大于所需商品数量，返回正整数，值为库存数量与所需商品数量的差额<br>
     *               如果库存数量等于所需商品数量，返回 0 <br>
     *               如果库存数量小于所需商品数量，返回负整数，值为库存数量与所需商品数量的差额
     */
    int checkStock(long productId, int num);
    
    /**
     * 扣减商品库存
     * 
     * @param productId
     * @param num
     * @return 
     */
    boolean decreaseStock(long productId, int num);
}
